home *** CD-ROM | disk | FTP | other *** search
/ STraTOS 1997 April & May / STraTOS 1 - 1997 April & May.iso / CD01 / PRGMANIA / BFED.10 / WIND.H < prev    next >
Encoding:
C/C++ Source or Header  |  1997-01-27  |  3.2 KB  |  122 lines

  1. /*
  2.     file: wind.h
  3.     utility: header file of wind.c
  4.     date: 1989
  5.     author: Jim Charlton
  6.     modifications:
  7.         1995: C. Moreau: 
  8.     comments: 
  9. */
  10. #ifndef _WIND_H
  11. #define _WIND_H
  12.  
  13. #ifdef __PUREC__
  14. #include <aes.h>    /* defs for GRECT */
  15. #include <vdi.h>    /* defs for MFDB */
  16. #include <compend.h>
  17. #else
  18. #include <aesbind.h>
  19. #include <vdibind.h>
  20. #endif
  21.  
  22. #include <stdio.h>
  23.  
  24. #define WIDTH_WIN    70
  25.  
  26. #ifndef TRUE
  27. #define TRUE        1
  28. #define FALSE        0
  29. #endif 
  30.  
  31. #define max(a,b)    (a>b?a:b)
  32. #define min(a,b)    (a<b?a:b)
  33.  
  34. #define BLOCKSIZE 4096
  35.  
  36. typedef struct  _linkbuf 
  37. {
  38.     struct  _linkbuf    *next;
  39.     char                 block[BLOCKSIZE];
  40.     long                inuse;
  41. } linkbuf;
  42. typedef linkbuf *linkbufptr; 
  43.  
  44. /*
  45.     Each window will have a grafport so that it is easy to maintain 
  46.     drawing environments accross windows.
  47. */
  48. typedef struct _grafport 
  49. {
  50.     int        handle;        /*  Virtual workstation handle                      */
  51.     MFDB    mfdb;        /*  memory definition block for virtual workstation    */
  52. } grafport;
  53.  
  54. /*
  55.     Window definition.
  56. */
  57. typedef struct _windowrec 
  58. {
  59.     struct _windowrec    *next;        /*  Window link                        */
  60.     int                    handle;        /* Window Handle                    */
  61.     int                    kind;        /* The windows type                    */
  62.     int                    fullsize;    /* In full-screen mode                */
  63.     int                    vslidepos;    /* vertical slider position            */
  64.     char                title[PATH_MAX];    /* Title of window                    */
  65.     char                info[WIDTH_WIN];
  66. /*
  67.     GRECT                box;        /* Window Box dimensions            */
  68. */
  69.     GRECT                work;        /* Window content region dimensions    */
  70.     grafport            graf;        /* Window graphics port definition  */
  71.     int                    (*updateproc)(); /* Pointer to update procedure */
  72.     struct _linkbuf        *headptr;
  73.     long                startmark;
  74.     long                endmark;
  75.     int                    markson;
  76.     int                 xcur;        /* xpos of cursor on screen            */
  77.     int                    ycur;       /* ypos of cursor on screen            */
  78.     long                topchar;    /* number of char at top left         */
  79.     long                flen;        /* length of file in total            */
  80.     long                position;    /* position of cursor in file        */
  81.     char                input[2];    /* input buffer                        */
  82.     int                    icount;        /* input buffer end pointer            */
  83.     int                    changed;    /* changed flag */
  84.     int                    prot;        /* protected flag */
  85.     OBJECT                *form;        /* Form adress     */
  86.     int                    icon;        /* iconified window flag */
  87. } windowrec;
  88. typedef windowrec *windowptr;
  89.  
  90.     /* Globals vars */
  91. extern windowptr    firstwindow;
  92. extern windowptr    thefrontwin;
  93. extern    int        partial;
  94. extern    int        draw_flag;
  95. extern    int        slid_flag;
  96. extern    int        arro_flag;
  97. extern int black_white;
  98. extern int grow_shrink;
  99. extern int info_hexa;
  100.  
  101.     /* Functions */
  102. extern void window_do(int *message);
  103. extern void window_open(windowptr    thewin);
  104. extern void window_dispose(windowptr    thewin);
  105. extern void window_resources_dispose(windowptr    thewin);
  106. extern void window_put_top(windowptr thewin);
  107. extern windowptr window_new(int thekind);
  108. extern windowptr findwindowptr(int handle);
  109. extern void window_blank(windowptr thewin);
  110. extern void window_rot(void);
  111.  
  112. extern void window_info(windowptr thewin);
  113. extern void window_title(windowptr thewin);
  114. extern void window_tile(int horiz_verti);
  115. extern void window_init(void);
  116. extern windowptr find_workwind(void);
  117. extern void insertwindowptr(windowptr thewin);
  118. extern void window_iconify(windowptr thewin);
  119. extern void window_uniconify(windowptr thewin);
  120. extern void window_iconify_all(void);
  121.  
  122. #endif